package com.cloud.xtools.user.service.admin;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cloud.xtools.common.response.PageList;
import com.cloud.xtools.user.domain.entity.User;
import com.cloud.xtools.user.domain.request.admin.UserCreateRequest;
import com.cloud.xtools.user.domain.query.admin.UserQuery;
import com.cloud.xtools.user.domain.request.admin.UserUpdateRequest;
import com.cloud.xtools.user.domain.resource.admin.UserResource;

import java.util.List;
import java.util.Set;

/**
 * @author Daixinguo
 */
public interface UserService extends IService<User> {
    // 用户列表
    PageList list(UserQuery userQuery);

    // 添加用户
    UserResource add(UserCreateRequest userCreateRequest);

    // 编辑用户
    void edit(Long id, UserUpdateRequest userUpdateRequest);

    // 删除用户
    void destroy(Long id);

    // 分配角色
    void assignRole(Long id, List<Long> roleIds);

    // 远程获取用户信息
    UserResource userInfo();
    UserResource userInfoById(Long id);
}
